perm filename INTOPS.PAL[HAL,HE]20 blob sn#239535 filedate 1976-09-29 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	.SBTTL	Table of interpreter instructions
C00012 ENDMK
C⊗;
.SBTTL	Table of interpreter instructions

COMMENT  ⊗
This table is parallel to the file INTDEF.SAI[HAL,HE].  It is required
at several places in the interpreter; each of these can define the
macro MAKEOP however desired.  The convention here for types of
arguments that each pseudo-op takes is this:
	a	absolute address
	la	list of absolute addresses
	o	offset or level-offset pair
	lo	list of offsets or level-offset pairs
	n	small constant
	r50	word of radix 50
⊗

PCVERSION == 5		;Fix this every time you add some new pcodes

	II == 2		;Start of interpreter jump table (0 is illegal instruction)

	;Motion control
MAKEOP	XMOVE,MOVE,<a>	;Prepare, execute move whose traj table is at a.
MAKEOP	XCENTER,CENTER,<a>,	;Center using traj table at a.
MAKEOP	XSTOP,STOP,<n>	;Cause all mechanisms whose bits are on in n to stop.
MAKEOP	XNOTICE,NOTICE	;Make sure everyone knows where the arm is.

	;Variables
MAKEOP	XMVAR,MVAR,<lo>	;Make graph node for given offsets (list arg)
MAKEOP	XKVAR,KVAR,<lo>	;Kill graph node at given offsets (list arg)
MAKEKP	XGLBLNK,GLBLNK,<lo,r50,r50>
			;Link global given by r50,r50 into level-offset lo.
MAKEOP	XMAKEVT,MAKEVT,<lo>	;Make evEnt variables with offsets as In list.¬
MAKEOP	XDESEVT,DESEVT,<lo>	;KiLl evEnt variables with offsets as In list.~∃5β↔∨@∪1≠a Y≠a XyY<YBY↑x∩wC-JAC\↓Kqae∃ggS←8AoQ←MJA]K∃IKHA1SghA%fAY↑4∀∩∩∩lAChA¬IIeKMfABX↓C]HA
CYXA%hA←M→gKhAαy84*l
.⊗>Jb6∞d→26∞d→1s=fyyn\≥6*πMRε/∞∞&/∨=→vrε≡@λ
L=Y0⊗ws3 3et o1 a calculator
			; for the variable at↓↑d\~)≠β↔= ∪1	
→εI	
→εXy<Y↑|wU][CW∀AiQJ↓Kqae∃ggS←8AChA1KmKX5←MMg∃hA↑b↓BAGC1GkYCQ←d~∀$∩∩vA→←dAi!JAmCISCEY∀AChA<d\
∃5β↔∨@∪1≠π!∞Y≠π!∞Xy↑1B|w≠¬WJAB↓GQC]≥KdAM=dAmCISCEY∀AChA1KmKX5←MMg∃hA↑A¬hACI⊃eKgf↓B\4Tjε.⊗⎇&b≡$z2⊃2=">"⊂KZ∨↔Q¬##∃β|c⊃β[∞cW¬β6{Iβ∂-∪K↔;"β∂#πv;↔I8hR6ε.,z@&b=":⊗]d:R:⊗8In∨↔"βS#∃εs↔]β63W∃ε3?Iβ∨+KK↔w!β∂#∞s∨↔Iph(4(KZOSπ≡Yβ?C/∪πS'}sL4*l
.⊗>Jb≡R4
12≡%2ε11fyynC/≠!β[∞cW∃β}1βπK:↓#3↔6+17?63O↔Qπβπ'IJp4*6Z⊗>@MB&≡R4
12&="Zε1cc¬x%]βWO!εK≥↓FK77↔&KπS∃Jp4*6Z⊗>Aααb∞"t:∃2∞Dr≡∃1fyynC␈↓β[πg+∃β'w#=βπ⊗9↓#3/3↔17}3≠O↔"βCπ'∩I84*l
.⊗>α↓αb&≤B:≡∃dJ∞":<)1s¬sZC?Aπ3π3W*β';SzβπK≥αC'77.#'πS*I84*l
.⊗>JbBV≤A1αB-~!1sp%nC/≠!βπ⊗9β∪'⊗+∂S3J↓#πMε	βCS∩Iβ?;&yβOS∞≠-9α6{Iβ∂w≠S;S~p4*6Z⊗>@MBB>Ab↓αB>InC?αβOSπ≡Y84*l
.⊗>Jb∞>¬I1α∞⎇αe↓1fqyn∂␈βeβ9?#!β∪␈;9βSzβS?Aε{→βO&∂-8hR6ε.,z@&b∀*B2ε~bJ⊗Bd

1ssp%nK/β3π∂*β9∨SBβ∪?←rβ←'SBβS?AαC←#'≡AβC?αH4*6Z⊗>@MB~2V≤A2~2-~ %n6cWO!π##∃β.sS'K*βOSπ≡Y84(hP%n≠f{]β?2β∂?;'∪?04Tjε.⊗⎇&b*,jA1αU*6A1βc¬x%\SW7Aπ#=βπ&#K↔O_h*6ε\*>@&DRV6B~b*V6∧→1s¬pIn+Wo↓βS=ε∪∪K/≠Mβ'2↓SK.)λ4*l
.⊗>JbR⊗∀j&:ε$)2R⊗∀j&:ε$(%nS/∪7';∂#∃βSFKMβ'w#↔KC⊗+S↔HhR6ε.,z@&b,r∩∞2~b⊗:∩≤b$%]∪↔SW⊗qβ≠K}iβ∂πf≠W3π&{Iβ∂.c04*l
.⊗>α↓αbB∀z
1α¬∩>
1f	33=pIn∂πfaβ¬βπ∪?∂↔'+K∃β∂!β¬1π;'S!εK≥βfKOQβfy4*l
.⊗>JbJ⊗%*J92∀*RVJpInK↔'+K9β7∪?5βπ∪?∂↔'+K∀4Tjε.⊗⎇&bN¬∩>VQe~BJ>-!o3∧KZOCK␈+Qβ'w#↔KC⊗+S↔K~βπQβ.∂!β∂∪≥1β>'Q↓Fc'OQεK≥$hR6ε.,z@&b4zJ∞"Zb~>J≤B-1sp%n∪zβ¬α~⎇⊃73?␈↓β∂#.≠-1β∞s⊃β≠∞K1βSzβ3?∂∂#'?9ε!84*l
.⊗>JbN&<rε12≤J≡:εbas=xKZO'∨v1β↔6+;Qβ∂!β3↔6+17?63O↔Qεy84*l
.⊗>Jb↑εM"∃2↑JR∃1fyx%n>'Qβ}qβ↔[.sQβπ"β3↔[.a7?≠7≠↔Qβzp4*6Z⊗>@MBBεV≤)2Bε-~∀$%]βπWO*β'9β≡+∂?;'→↓#?rβOSπ≡Y$4*l
.⊗>Jbε
⎇∩Q2ε∀zJP$KZπ?↔!β∂W↔∪↔;Qεk?S'}sL4*l
.⊗>Jb∩∩"b≡>∩% $%o>yβS=∧"∩Q8hP4(%\∪??3.84*l
.⊗>JbN2*bN2∀KZLrMαβ∂?7εK∃β&{AβS>yβ↔3'→1βC␈↓1βC␈↓1βC/≠!βπw≠←↔HhR6ε.,z@&b≤bQ2Ne %nMe_$'S↔+∃↓ij↓E9@hR6ε.,z@&b≤:∃2N<(%nLm_$'≠∞cO∃ij↓↓@4Tjε.⊗⎇&bN=!2N≡ InMz_h*6ε\*>@&E~⊗E2≤*D%n≠jL4*l
.⊗>JbN:*bN:∀KZLnLhR6ε.,z@&br⊃2εt %nL%→↓↓#f{∨'∂∞aβπ;"H4*6Z⊗>@MB2>Idb>H$KZL}Mα↓#3?>K∂π1ε{I$4Tjε.⊗⎇&b:⎇!2:> IlεMα↓↓#3};'∂πbβ;?QJβ;?S+QβS#O→β?;gIβSπ↑+Mβ?v)βπK8h(4(KZπK'&C7↔SN_4*6Z⊗>@MB↑"⊗∀)2↑"-∩∃1ssp%nC/≠!βSF)β∂W↔∪↔;Qεc?∂π&K?9β}1β7↔≡Cπ;'≡iβ84Tjε.⊗⎇&bN"⊃1α≤
∩⊂%]→.Miααπ∪⊃π#?Aβ';=β↔g#M1β∧{A1βε{A1βπ+O!β∞sO←↔⊂h*6ε\*>@&E~NV	bαNNV⊂InM6≠Q↓αO.⊃βS?αβS←=ε+3SMbβC?AbβC?AbβCWOBβπ;O>+H4*l
.⊗>JbN:,91αNt*≤%mm→i↓↓∧s↔∨π&)βS?αβ↔3QbβC?AbβCWOBβπ;O>+H4*l
.⊗>JbN6αYBb¬9ZT`K:5%≠R∧	W.b∞MwαπN⎇rε.β≥≤eD≤≠|¬D≤≠|¬D≤≥<m∧_;\n|<C"IX2q3j↓6∀q	~Kλ∀hI5B.j5tnH∧λ~=H∞M|λ∃∞⎇h→;∞Nkλ∀
}λ≤
}λ≤∞↑zλ_-n⎇y<AQS02hYtα6
i01sED∃S0(yB.tdh≠[n-αP7cλ;2qz≠yεE&Pebghαl+"'U⊗⊂+"∪j∧]iH/P;2Xz7y⊂→7z⊂;→qz7iβE&`eQeh∧l∀+"'j(+"'U∧]iP↔P;2q]7y⊂2≠z⊂;"Xz7y⊂_v6⊂~λ1rv6≤FE&`Rbgh∧V)ia)∃'⊗)iP)*'⊗∂7∨∧]TP/P)P)*'-[.T:7\⊂9qp[0y⊂"[:∀FE∪`ebgT∧l*&Pcg⊗*∪`cg∧NiP/P→|:90Xz9P0[3v2P≠s⊂97]0z4w[⊂397[P:90[9FE&Pebghαl* l∩iV* V$iD]U⊂/P2↑:90q]9P0|~yP7sλ97z0]4ww⊂→97vP≥90w9CE&`eQgh∧l∃&`ebK+&`eQD]k⊂↔P;2q]7y∀9Xpv0y9qpv_y⊗9qXv0y∀CE&`eQgh∧l∀k&jf)k&jS∧]k⊂↔P9qp[0y⊂∃λ;2qz≠yεE&Pebghαl+ b⊃⊗⊂+ Q"∧]kλ/P;2Xz7y⊂
P;2q]7yεE∪`ebgT∧l+)Ua⊗⊂+∀ja∧]U⊂/P;→qz7iλ⊗P;2Xz7yεB&`ebSh∧l*S$j+⊗∃g$j+λ⊂∧]k→qz7yλ/P;2Xz7y⊂P4z9H77y6CE∧]aT'ik⊂≤2vw{→D]k2Xz7y⊂↔P;2q]7y⊂1\7yyP≥2qz7\εE&`Rbgh∧V*+&jS⊗*+&Uf∧]k→qz7yλ/P:9_w9P∃λ;2qz≠yεE&Pebghαl*('TV*('TD]k2Xz7y⊂↔P:90[9v0z~ww8_y:7Y:90[9FE&Pebghαl*'i∩bg⊗*∪i$bgα]j⊂/H97z0]4ww≤0y:≠s:9_w9FE∪`ebgT∧l+)Pl+i⊗∃)`l+T∧]j⊂↔P97z_z4ww
;2qz≠y⊗0w→v2TFB&`ebSh∧l*∪`ebV∃&`ebB]j⊂/H:90w≤T97z;2qz≠y∀FE∪`ebgT∧l*+⊂b"⊗*∃ b"∧Nj⊂/P≥⊂∃P;βE&`eQgh∧l∃+)ja*+)jP∧]j⊂↔P:⊂⊗H;εE∧Nc*'cβE&`eQgh∧l∃*&jf**&jS∧]j⊂↔P:90[9P∃⊂≥90w9CE&`eQgh∧l∃$g+)∃⊗*$g∃)*∧]U⊂/P:≤0w9P
⊂:90[9FEεB∧]aw[24z4[w⊂6w[4z7y≤FE&`Rbgh∧V!ff`RV!ffPeV≡7O≥fpuYP0P1KvP0zλ7s39Yz⊂7FB&`ebSh∧l!Sbg!&!fbg⊂&⊗≡7O∧]bw_q62P_VvP0]⊂62{→v⊗ws→9rz⊂≠FE&`Rbgh∧V!fb)P&⊗!fQ)a&⊗∂7←∧]Q4ypq≠2P1V[P0z⊂≠2{2vws39Yz⊂7FB&`ebSh∧l!Sb"ij!fb"Tj⊗≡6≠←∧]b→yz97↑P1VvH0z⊂7Y39rzλ67P∀≠4yz⊂_y3TFB&`ebSh∧l!Sj)$cK!fj)∩cD]j≤4ssr\⊂:42H1VvP_7r<P
:yrP≠w6<P~w⊂1t→qury
FE&`Rbgh∧V!fieQb⊗!fTebb⊗∂7∨∧]Tv2rxλ37y⊂≠⊂6tv≠9P∀:\rP7w≠<P4wλ1t2qZry∀FB&`ebSh∧l!Sjg!i!fjg⊂i∧]i]0y:⊂≥w1y4]4qpvλ9rqz~wwεEβE∧]c≠y1rP_ww:9≠vεE&Pebghαl#bj⊃'i!bK#bj#∪i!bV∂7←∧]T:yt⊂_zy92[:⊂37\1rP;~pP#&P&%P4[⊂≡7←βE&`eQgh∧l∪`ec'T!bV&Pec'i⊂bV≡7K7∨≥fXurP#∪a&%P~w⊂7s→9rz⊂∂7←⊂3≠y⊂6rXt0w4\vP7εB&`ebSh∧l"⊃ic'i⊂bV""Tc'i!QV≡7←α]b2y]97|P⊃&a&%H4w⊂6→{2v⊗[s39r]⊂≡7←βEεE∧Ndw4z~pv4⎇_z4wwβE&`eQgh∧l∀)'cV∀)'cDB]dw4]4pv4↑2P6rXt0w4\vP;0\4pq6→yFE&Pebghαl"g"∀⊗"g"∀∧D]a[2pw⊂≥sm variables

	;Debugging aids
MAKEOP	XPRINT,PRINT	;Type an ASCIZ string on the VT05.
MAKEOP	XVALPRN,VALPRN	;Type a value, whatever type it is, and pop it.
MAKEOP	XVARPRN,VARPRN,<o>	;Type a variable (level-offset), whatever type.
MAKEOP	XBRACE,NOOP	;Bracepoint in the program (break or trace)
MAKEOP	XNOOP,NOOP	;Null operation
MAKEOP	XTOPAL,TOPAL	;Escape to PAL